﻿using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;

namespace Scrum.Net.Interfaces
{
    /// <summary>
    /// Scrum Project
    /// </summary>
    public interface IProject
    {
        /// <summary>
        /// Name of the project.
        /// </summary>
        string Name { get; set; }

        /// <summary>
        /// Start of the project.
        /// </summary>
        DateTime Start { get; set; }

        /// <summary>
        /// End of the prject.
        /// </summary>
        DateTime End { get; set; }

        /// <summary>
        /// Description of the project.
        /// </summary>
        string Description { get; set; }

        /// <summary>
        /// List of Users in the project.
        /// </summary>
        ObservableCollection<IUser> Users { get; }

        /// <summary>
        /// List of Sprints in the project.
        /// </summary>
        IList<ISprint> Sprints { get; }

        /// <summary>
        /// The Product Backlog is a prioritized list of everything that might be needed in the product.
        /// </summary>
        IList<IProductStory> Backlog { get; }
    }
}